#include <QApplication>
#include <QDebug>
#include <QStringList>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include "signal.h"
#include "login.h"
#include "sign_up.h"
#include "patient.h"
#include "medical.h"
#include "switch_verify.h"
#include "on_off_verify.h"
#include "log.h"
#include <QStyleFactory>
#include "history_show.h"
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
QSqlDatabase db;
bool MYSQL_Connect(void)
{
     db=QSqlDatabase::addDatabase("QMYSQL","MAin");
        qDebug() << "MYSQL driver valid" << db.isValid();
    //db.setHostName("2001:da8:270:2019::a8");
        db.setHostName("2001:da8:270:2018:f816:3eff:fe1d:bb01");
    db.setPort(3306);
    db.setDatabaseName("MQTT_DATA");
    db.setUserName("root");
    db.setPassword("lama940225");
    if(!db.open())
    {
        qDebug()<<"z主函数打开数据库失败！"<<db.lastError();

        return false;
    }

    return true;
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.setStyle(QStyleFactory::create("Fusion"));
    //Login login;
    //login.show();
    //qInstallMessageHandler(myMessageOutput);//用于注册messagehandler，用于日志
    qDebug("This is a debug message");
   // History_Show history_show;
    //history_show.show();
    //sign_up signup;
    //signup.show();
    //patient perple;
    //perple.show();
    //Medical Doctor;
    //Doctor.show();
//    Switch_verify Verify;
//    Verify.show();
//    ON_Off_Verify on_off;
//    on_off.show();

    if(!MYSQL_Connect())
        qDebug()<<"主函数数据库连接失败!";
    QSqlQuery query(db);
    //删除数据表
    if(!query.exec("DROP TABLE Login_Hospital"))
        qDebug()<<"删除数据表失败"<<query.lastError();


 //创建一个数据表Worker_Login_Hospital，该数据表保存了患者和医护人员的账号和密码，以保证相应的权限。格式如下：
//#--------ID--------create_data--------type--------Account--------Identity--------sex---------phone---------passwd--------isValid--------#
//####    唯一ID--------创建时间---------区分医护和患者----账户名--------身份证号--------性别--------手机号-----------密码-----------是否合法---------#
  //ID   自动添加的类型，作为PRIMARY主键
  //create_date 类型为TIMESTAMP 表示创建该数据时候的日期
  //type  类型为VARTCHAR 医护人员类型为`worker`,患者类型为`customer`
  //Account 类型为VARCHAR 表示帐户名，一般为姓名
  //Identity 类型为VARCHAR 表示身份证号
  //sex 类型为VARCHAR 表示性别 只能为'man' 和‘woman’
    //phone 类型为VARCHAR 表示手机号
    //passwd 类型为VARCHAR 表示密码, 一般为英文和数字
  //isVAlid 表示是否为合法的状态，合法时为ture，否则为false。
   if(!query.exec("CREATE TABLE IF NOT EXISTS `Worker_Login_Hospital`("
               "`ID` INT AUTO_INCREMENT,"
               "`create_data` TIMESTAMP,"
               "`type` VARCHAR(10) NOT NULL,"
               "`Account` VARCHAR(20) NOT NULL,"
                  "`Identity` VARCHAR(20) NOT NULL,"
                  "`sex` VARCHAR(10) NOT NULL,"
                  "`phone` VARCHAR(20) NOT NULL,"
               "`passwd` VARCHAR(30) NOT NULL,"
               "`isValid` VARCHAR(10) NOT NULL,"
               "PRIMARY KEY (`id`)"
               ") ENGINE=InnoDB DEFAULT CHARSET=utf8"))
           qDebug()<<"创建数据表失败"<<query.lastError();


   //创建一个数据表Patient_Login_Hospital，该数据表保存了患者和医护人员的账号和密码，以保证相应的权限。格式如下：
  //#--------ID--------create_data--------type--------Account--------Identity--------sex---------phone---------passwd--------room--------isValid--------#
  //####    唯一ID--------创建时间---------区分医护和患者----账户名--------身份证号--------性别--------手机号-----------密码-----------病房号--------是否合法---------#
    //ID   自动添加的类型，作为PRIMARY主键
    //create_date 类型为TIMESTAMP 表示创建该数据时候的日期
    //type  类型为VARTCHAR 医护人员类型为`worker`,患者类型为`customer`
    //Account 类型为VARCHAR 表示帐户名，一般为姓名
    //Identity 类型为VARCHAR 表示身份证号
    //sex 类型为VARCHAR 表示性别 只能为'man' 和‘woman’
      //phone 类型为VARCHAR 表示手机号
      //passwd 类型为VARCHAR 表示密码, 一般为英文和数字
   //room 表示为病房号 格式为 xx-xx-xx  楼号-层数-房间号
    //isVAlid 表示是否为合法的状态，合法时为ture，否则为false。
     if(!query.exec("CREATE TABLE IF NOT EXISTS `Patient_Login_Hospital`("
                 "`ID` INT AUTO_INCREMENT,"
                 "`create_data` TIMESTAMP,"
                 "`type` VARCHAR(10) NOT NULL,"
                 "`Account` VARCHAR(20) NOT NULL,"
                    "`Identity` VARCHAR(20) NOT NULL,"
                    "`sex` VARCHAR(10) NOT NULL,"
                    "`phone` VARCHAR(20) NOT NULL,"
                 "`passwd` VARCHAR(30) NOT NULL,"
                    "`room` VARCHAR(30) NOT NULL,"
                 "`isValid` VARCHAR(10) NOT NULL,"
                 "PRIMARY KEY (`id`)"
                 ") ENGINE=InnoDB DEFAULT CHARSET=utf8"))
             qDebug()<<"创建书库表失败"<<query.lastError();
   //关闭数据库连接
   db.close();
   QString CON_NAME=db.connectionName();
   db.removeDatabase(CON_NAME);
   Login login;
   login.show();
//   query.exec("select * from DATA");
//   if(!query.last())
//        qDebug()<<"查询出错！"<<query.lastError();
//    QString data=query.value(1).toString();
//    qDebug()<<data;
    //if(!query.exec("SELECT * FROM DATA"))
//    query.exec("insert into student values(1,'xiaogang')");
//    query.exec("insert into student values(2, 'xiaoming')");
    return a.exec();
}
